package org.coopac.dao.impl;import java.util.List;
import org.coopac.dao.ISocioDAO;
import org.coopac.model.CoopacSocio;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@Repository("SocioDAO")
public class SocioDAO extends BaseDaoImpl<CoopacSocio> implements ISocioDAO {

	@Autowired
	SessionFactory sessionFactory;

	@Override
	protected SessionFactory getSessionFactory() {
		return sessionFactory;}

	@Override
	public List<CoopacSocio> listar() {
	return super.listar(CoopacSocio.class);
	}

	@Override
	public void save(CoopacSocio socio) {
		super.save(socio);
	}

	@Override
	public void update(CoopacSocio socio) {
		super.update(socio);
	}

	@Override
	public void delete(CoopacSocio socio) {
		super.delete(socio);
	}

	@Override
	public CoopacSocio getById(int id){
		return (CoopacSocio) super.getById(CoopacSocio.class, id);
	}

	@Override
	public List<String> listarSocioPersonaDocumento() {
		String consulta = 
			"SELECT CONCAT(persona.apellidoPaternoRazonSocial,' ',persona.apellidoMaterno,' '," +
			"persona.nombrePersonaNombreComercial,' @DNI: ',documento.numero,' @SOC: ',socio.codigoSocio) as nombreBusqueda FROM CoopacPersona as persona, " +
			"CoopacDocumentoPersona as documento, CoopacSocio as socio where persona.idPersona = documento.coopacPersona.idPersona and " +
			"socio.coopacPersona.idPersona = persona.idPersona";
			
			List list = getSessionFactory().getCurrentSession()
			.createQuery(consulta).list(); 
			
			return list;
	}

}
